const joi = require("joi");

/**
 * string() 值必须是字符串
 * alphanum() 值只能是包含 a-zA-Z0-9 的字符串
 * min(length) 最小长度
 * max(length) 最大长度
 * required() 值是必填项，不能为 undefined
 * pattern(正则表达式)
 */

// 用户名的验证规则,允许字母和数字
// const username = joi.string().alphanum().min(3).max(10).required();

// 用户名的验证规则，允许汉字、字母和数字
const username = joi
  .string()
  .min(1)
  .max(12)
  .regex(/^[\u4e00-\u9fa5a-zA-Z0-9]+$/) // 匹配汉字、字母和数字
  .required();

// 密码的验证规则
const password = joi
  .string()
  .pattern(/^[\S]{6,12}$/)
  .required();
// 真实姓名的验证规则
const realName = joi
  .string()
  .min(1)
  .max(10)
  .regex(/^[\u4e00-\u9fa5]+$/)
  .required();

const email = joi.string().email();

const gender = joi.string().valid("男", "女", "保密");

// 注册和登录表单的验证规则对象
exports.reg_login_schema = {
  // 表示需要对 req.body 中的数据进行验证
  body: {
    username,
    password,
    realName,
    email,
    gender,
  },
};
